﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Collections.Generic;

namespace Sinacor.Tools.Web.ConstantesErro
{
    public partial class ConsultaMensagem : BasePage
    {

        private Entidade.Mensagem mensagemGuardada;
        private List<Entidade.Mensagem> listaMensagem;
        private Entidade.Mensagem entidade;
        private byte codigoIdioma;

        #region Métodos

        protected override void preencherGrid(string sortExpression)
        {
            Negocio.Mensagem mensagem = new Negocio.Mensagem();
            mensagemGuardada = (Entidade.Mensagem)this.preencherEntidade(sortExpression).Clone();
            ViewState["consulta"] = mensagemGuardada;
            this.grdMensagem.DataSource = mensagem.consultar((Entidade.Mensagem)mensagemGuardada.Clone());
            this.grdMensagem.DataBind();
        }

        protected void preencherGrid(string sortExpression, bool usarMensagemGuardada)
        {
            if (usarMensagemGuardada)
            {
                Negocio.Mensagem mensagem = new Negocio.Mensagem();
                grdMensagem.DataSource = (List<Sinacor.Tools.Entidade.Mensagem>)ViewState["ConsultaMensagem"];
                grdMensagem.DataBind();
            }
            else
            {
                preencherGrid(sortExpression);
            }
        }

        protected void preencherGridResourceKey(string sortExpression)
        {
            Negocio.Mensagem mensagem = new Negocio.Mensagem();
            this.grdResourceKey.DataSource = (List<Sinacor.Tools.Entidade.Mensagem>)ViewState["ConsultaResourceKey"]; 
            this.grdResourceKey.DataBind();
        }

        protected void preencherGridResourceKey(string sortExpression, bool usarMensagemGuardada)
        {
            if (usarMensagemGuardada)
            {
                Negocio.Mensagem mensagem = new Negocio.Mensagem();
                grdResourceKey.DataSource = (List<Sinacor.Tools.Entidade.Mensagem>)ViewState["ConsultaResourceKey"];
                grdResourceKey.DataBind();
            }
            else
            {
                preencherGridResourceKey(sortExpression);
            }
        }
        

        protected override void preencherGrid()
        {
            this.preencherGrid(string.Empty);
        }
                       
        private Entidade.Mensagem preencherEntidade(string sortExpression)
        {
            Entidade.Mensagem mensagem = new Entidade.Mensagem();
            if (!string.IsNullOrEmpty(sortExpression))
                Entidade.Mensagem.PropriedadeSort = sortExpression;

               if(rdoMensagem.Checked)
               {
                    if (this.txtMensagem.Text.Trim() != string.Empty)
                    {
                        mensagem.Traducao.MensagemTraduzida = this.txtMensagem.Text.Trim();
                    }
               }
               else if (rdoResourceKey.Checked)
               {
                   if (this.txtMensagem.Text.Trim() != string.Empty)
                   {
                       mensagem.ResourceKey = this.txtMensagem.Text.Trim();
                   }
               }                     

            return mensagem;
        }


        private void addScripts()
        {
            //this.btnExcluirMensagem.Attributes.Add("onclick", "if(confirm('Confirma exclusão ?') return false;");
            Control ImgAlterarMensagem = Page.FindControl("ImgAlterarMensagem");

        }


        #endregion
        
        #region Eventos
             
        protected override void Page_Load(object sender, EventArgs e)
        {
            try
            {
                codigoIdioma = Negocio.Idioma.buscarIdIdiomaPadrao();

                base.Page_Load(sender, e);

                if (txtMensagem.Attributes.Count == 0)
                {
                    txtMensagem.Attributes.Add("onchange", "DesabilitatBotao();");
                    txtMensagem.Attributes.Add("onkeypress", "DesabilitatBotao();");
                }

                if (!this.Page.IsPostBack)
                {
                    if (Session["Mensagem"] != null)
                    {
                        entidade = (Entidade.Mensagem)Session["Mensagem"];
                        
                        switch (entidade.TipoFiltroMensagem)
                        {
                            case Sinacor.Tools.Entidade.Enum.TipoFiltroMensagem.Mensagem:
                                rdoMensagem.Checked = true;
                                txtMensagem.Text = entidade.Traducao.MensagemTraduzida;
                                break;
                            case Sinacor.Tools.Entidade.Enum.TipoFiltroMensagem.ResouceKey:
                                rdoResourceKey.Checked = true;
                                txtMensagem.Text = entidade.ResourceKey;
                                break;
                            default:
                                break;
                        }
                    }

                    CarregarCabecalhoMensagem();
                    acaoBotoesMensagem(false);

                    CarregarCabecalhoResourcekey();
                    acaoBotoesResourceKey(false);

                    addScripts();
                }
            }
            catch (Exception ex)
            {
                this.apresentarMensagem(ex.Message);
            }
        }
        protected void btnNovaMensagemResourceKey_Click(object sender, EventArgs e)
        {
            entidade = new Entidade.Mensagem();
            entidade.Traducao = new Entidade.TraducaoMensagem();
            entidade.Traducao.MensagemTraduzida = txtMensagem.Text.Trim();

            entidade.Traducao.Idioma = new Entidade.Idioma();
            entidade.Traducao.Idioma.Id  = codigoIdioma;

            entidade.TipoFiltroMensagem = Sinacor.Tools.Entidade.Enum.TipoFiltroMensagem.Mensagem;
            
            Session["Mensagem"] = entidade;

            this.Page.Server.Transfer("frmMensagem.aspx");
        }

        protected void btnNovaResourceKey_Click(object sender, EventArgs e)
        {
            foreach (Entidade.Mensagem item in (List<Entidade.Mensagem>)ViewState["ConsultaMensagem"])
	        {
                if(Convert.ToInt32(Session["mensagemId"]) == item.Id)
                {
                    entidade = (Entidade.Mensagem)item.Clone();  
                    break; 
                }
	        }

            entidade.Traducao.IdMensagem = entidade.Id;
            entidade.Id = null;

            entidade.TipoFiltroMensagem = Sinacor.Tools.Entidade.Enum.TipoFiltroMensagem.ResouceKey;

            Session["Mensagem"] = entidade;

            this.Page.Server.Transfer("frmMensagem.aspx");
        }

        protected void btnNovaPesquisa_Click(object sender, EventArgs e)
        {
            LimpaPesquisa();
        }

        private void LimpaPesquisa()
        {
            LimparMensagemPesquisa();

            AvisoMensagem("");
            AvisoResourceKey("");

            rdoResourceKey.Checked = false;
            rdoMensagem.Checked = true;
            txtMensagem.Text = string.Empty;

            btnNovaMensagemResourceKey.Enabled = true;

            CarregarCabecalhoMensagem();
            acaoBotoesMensagem(false);

            CarregarCabecalhoResourcekey();
            acaoBotoesResourceKey(false);

            ViewState["ConsultaMensagem"] = null;
            ViewState["ConsultaResourceKey"] = null;
        }

        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            LimparMensagemPesquisa();

            AvisoMensagem("");
            AvisoResourceKey("");
            
            CarregarCabecalhoMensagem();
            acaoBotoesMensagem(false);

            CarregarCabecalhoResourcekey();
            acaoBotoesResourceKey(false);

            ViewState["ConsultaMensagem"] = null;
            ViewState["ConsultaResourceKey"] = null;

            List<Sinacor.Tools.Entidade.Mensagem> listaMensagem = new List<Sinacor.Tools.Entidade.Mensagem>();
            Negocio.Mensagem mensagem = new Negocio.Mensagem();
            entidade = new Sinacor.Tools.Entidade.Mensagem();

            int contador = 0;
            int novaPaginaIndice = 0;
            int indiceGrid = 0;
            int total = 0;

            #region Filtro

            entidade.Traducao = new Entidade.TraducaoMensagem();
            entidade.Traducao.Idioma = new Entidade.Idioma();
            entidade.Traducao.Idioma.Id = codigoIdioma;

            if (rdoMensagem.Checked)
            {
                entidade.TipoFiltroMensagem = Entidade.Enum.TipoFiltroMensagem.Mensagem;
                
                entidade.Traducao.MensagemTraduzida = txtMensagem.Text.Trim();  

            }
            else if (rdoResourceKey.Checked)
            {
                entidade.TipoFiltroMensagem = Entidade.Enum.TipoFiltroMensagem.ResouceKey;
                entidade.ResourceKey = txtMensagem.Text.Trim();  
            }

            #endregion

            CarregarCabecalhoMensagem();
            acaoBotoesMensagem(false);

            CarregarCabecalhoResourcekey();
            acaoBotoesResourceKey(false);

            listaMensagem = mensagem.ConsultarMensagemResourceKey(entidade);

            if (rdoMensagem.Checked)
            {   

                ViewState["ConsultaMensagem"] = listaMensagem;

                grdMensagem.DataSource = listaMensagem;
                grdMensagem.DataBind();

                btnNovaMensagemResourceKey.Enabled = true;
                
                for (int indice = 0; indice < listaMensagem.Count; indice++)
                {
                    if (listaMensagem[indice].Traducao.MensagemTraduzida == entidade.Traducao.MensagemTraduzida)
                    {
                        if (indice <= grdMensagem.Rows.Count)
                            grdMensagem.Rows[indice].Attributes.CssStyle.Add("background-color", "#B7CEFF");
                        else
                        {
                            grdMensagem.PageIndex = novaPaginaIndice;
                            grdMensagem.DataBind();

                            total = (novaPaginaIndice * grdMensagem.PageSize);

                            indiceGrid = (indice - total);

                            grdMensagem.Rows[indiceGrid].Attributes.CssStyle.Add("background-color", "#B7CEFF");
                        }

                        btnNovaMensagemResourceKey.Enabled = false;
                        break;
                    }
                    contador += 1;
                    if (contador > grdMensagem.PageSize)
                    {
                        novaPaginaIndice += 1;
                        contador = 1;
                    }
                }
                if (listaMensagem.Count == 0)
                {
                    AvisoPesquisa("Não foram encontrados dados que satisfaçam a pesquisa.");
                    CarregarCabecalhoMensagem();

                    acaoBotoesMensagem(true);
                }
                else
                {
                    AvisoPesquisa("");
                    if (string.IsNullOrEmpty(entidade.Traducao.MensagemTraduzida))
                        acaoBotoesMensagem(false);                    
                }
                
            }
            else if (rdoResourceKey.Checked)
            {

                ViewState["ConsultaResourceKey"] = listaMensagem;

                grdResourceKey.DataSource = listaMensagem;
                grdResourceKey.DataBind();

                for (int indice = 0; indice < listaMensagem.Count; indice++)
                {
                    if (listaMensagem[indice].ResourceKey == entidade.ResourceKey)
                    {
                        if (indice <= grdResourceKey.Rows.Count)
                            grdResourceKey.Rows[indice].Attributes.CssStyle.Add("background-color", "#B7CEFF");
                        else
                        {
                            grdResourceKey.PageIndex = novaPaginaIndice;
                            grdResourceKey.DataBind();

                            total = (novaPaginaIndice * grdResourceKey.PageSize);

                            indiceGrid = (indice - total);

                            grdResourceKey.Rows[indiceGrid].Attributes.CssStyle.Add("background-color", "#B7CEFF");
                        }

                        break;
                    }
                    contador += 1;
                    if (contador > grdResourceKey.PageSize)
                    {
                        novaPaginaIndice += 1;
                        contador = 1;
                    }
                }
                if (listaMensagem.Count == 0)
                {
                   AvisoPesquisa("Não foram encontrados dados que satisfaçam a pesquisa.");
                   CarregarCabecalhoResourcekey();                    
                }
            }              
        }
              
        protected void DeletarMensagem_Click(object sender, ImageClickEventArgs e)
        {
            AvisoResourceKey("");

            Negocio.TextoMensagem texto = new Negocio.TextoMensagem();
            string mensagem = string.Empty;

            try
            {
                entidade = new Entidade.Mensagem(); 
                entidade.Traducao = new Entidade.TraducaoMensagem();
                entidade.Id = Convert.ToInt32(((ImageButton)sender).CommandArgument);

                entidade.Traducao.IdMensagem = entidade.Id;
                entidade.Traducao.Idioma = new Entidade.Idioma();
                entidade.Traducao.Idioma.Id = codigoIdioma;

                texto.deletar(entidade.Traducao);
                                
                grdMensagem.DataSource = null;
                grdMensagem.DataBind();

                listaMensagem = (List<Sinacor.Tools.Entidade.Mensagem>)ViewState["ConsultaMensagem"];

                foreach (Entidade.Mensagem item in listaMensagem)
                {
                    if (item.Id == entidade.Id)
                    {
                        mensagem = item.Traducao.MensagemTraduzida;  
                        listaMensagem.Remove(item);
                        break; 
                    }
                }
                ViewState["ConsultaMensagem"] = listaMensagem;
                grdMensagem.DataSource = listaMensagem;
                grdMensagem.DataBind();

                if (listaMensagem.Count == 0)
                {
                    CarregarCabecalhoMensagem();
                    acaoBotoesResourceKey(false);
                }
                else
                {
                    if(Convert.ToInt32(Session["mensagemId"]) == entidade.Id)
                        acaoBotoesResourceKey(false);
                }

                AvisoMensagem(string.Format("A Mensagem ID:{0} e Descrição:{1} foi excluída com sucesso!", entidade.Id, mensagem),System.Drawing.ColorTranslator.FromHtml("#3366FF"));
            }
            catch (Exception ex)
            {
                AvisoMensagem(ex.Message,System.Drawing.Color.Red);                
            }
        }
        protected void AlterarMensagem_Click(object sender, ImageClickEventArgs e)
        {
            Negocio.TextoMensagem texto = new Negocio.TextoMensagem();
            int codigo = 0;
            try
            {
                entidade = new Entidade.Mensagem();
                codigo = Convert.ToInt32(((ImageButton)sender).CommandArgument);

                listaMensagem = (List<Sinacor.Tools.Entidade.Mensagem>)ViewState["ConsultaMensagem"];

                foreach (Entidade.Mensagem item in listaMensagem)
                {
                    if (item.Id == codigo)
                    {
                        entidade = (Entidade.Mensagem)item.Clone();
                        break;
                    }
                }

                if (rdoMensagem.Checked)
                    entidade.TipoFiltroMensagem = Sinacor.Tools.Entidade.Enum.TipoFiltroMensagem.Mensagem;
                else if (rdoResourceKey.Checked)
                    entidade.TipoFiltroMensagem = Sinacor.Tools.Entidade.Enum.TipoFiltroMensagem.ResouceKey;

                entidade.Traducao.IdMensagem = codigo;
                Session["Mensagem"] = entidade;

                this.Page.Server.Transfer("frmMensagem.aspx");
            }
            catch (Exception ex)
            {
                AvisoMensagem(ex.Message,System.Drawing.Color.Red);
            }
        }

        protected void DeletarResourceKey_Click(object sender, ImageClickEventArgs e)
        {
            AvisoMensagem("");

            Negocio.Mensagem nMensagem = new Negocio.Mensagem();            
            entidade = new Entidade.Mensagem();
            
            try
            {

                entidade.Id = Convert.ToInt32(((ImageButton)sender).CommandArgument);

                entidade.Traducao = new Entidade.TraducaoMensagem(); 
                entidade.Traducao.IdMensagem = entidade.Id;

                entidade.Traducao.Idioma = new Entidade.Idioma();
                entidade.Traducao.Idioma.Id = codigoIdioma;

                nMensagem.deletarResourceKey(entidade);
                               
                grdResourceKey.DataSource = null;
                grdResourceKey.DataBind();

                listaMensagem = (List<Sinacor.Tools.Entidade.Mensagem>)ViewState["ConsultaResourceKey"];

                foreach (Entidade.Mensagem item in listaMensagem)
                {
                    if (item.Id == entidade.Id)
                    {
                        entidade.ResourceKey = item.ResourceKey; 
                        listaMensagem.Remove(item);
                        break;
                    }
                }
                ViewState["ConsultaResourceKey"] = listaMensagem;

                grdResourceKey.DataSource = listaMensagem;
                grdResourceKey.DataBind();

                if (listaMensagem.Count == 0)
                    CarregarCabecalhoResourcekey();

                AvisoResourceKey(string.Format("ResourceKey ID: {0} e Descrição {1} foi excluída com sucesso!", entidade.Id, entidade.ResourceKey), System.Drawing.ColorTranslator.FromHtml("#3366FF"));
                                
            }
            catch (Exception ex)
            {
                AvisoResourceKey(ex.Message,System.Drawing.Color.Red);                
            }
        }
        protected void AlterarResourceKey_Click(object sender, ImageClickEventArgs e)
        {
            Negocio.TextoMensagem texto = new Negocio.TextoMensagem();
            int codigo = 0;
            try
            {
                entidade = new Entidade.Mensagem();
                codigo = Convert.ToInt32(((ImageButton)sender).CommandArgument);

                listaMensagem = (List<Sinacor.Tools.Entidade.Mensagem>)ViewState["ConsultaResourceKey"];

                foreach (Entidade.Mensagem item in listaMensagem)
                {
                    if (item.Id == codigo)
                    {
                        entidade = (Entidade.Mensagem)item.Clone();
                        break;
                    }
                }

               entidade.TipoFiltroMensagem = Sinacor.Tools.Entidade.Enum.TipoFiltroMensagem.ResouceKey;
               
                Session["Mensagem"] = entidade;

                this.Page.Server.Transfer("frmMensagem.aspx");
            }
            catch (Exception ex)
            {
                AvisoMensagem(ex.Message, System.Drawing.Color.Red);
            }
        }

        protected void grdMensagem_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                paginar(sender, e);
                ((GridView)sender).PageIndex = e.NewPageIndex;                
                preencherGrid(Entidade.Mensagem.PropriedadeSort, true);               
            }
            catch (Exception ex)
            {
                this.apresentarMensagem(ex.Message);
            }

        }
        protected void grdMensagem_Sorting(object sender, GridViewSortEventArgs e)
        {
            try
            {
                this.preencherGrid(e.SortExpression);
            }
            catch (Exception ex)
            {
                this.apresentarMensagem(ex.Message);
            }
        }
        protected void grdMensagem_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
               setDefaultGridStyle(e, string.Empty);
                //addToolTip(e);
            }
            setGridCellStyle(e.Row, false);
        }

        protected void grdResourceKey_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                setDefaultGridStyle(e, string.Empty);
                //addToolTip(e);
            }
            setGridCellStyle(e.Row, false);
        }


      
        protected void grdMensagem_SelectedIndexChanged(object sender, EventArgs e)
        {
            LimparMensagemPesquisa();
            AvisoMensagem("");
            AvisoResourceKey("");
 
            GridView grid = (GridView)sender;
            if (Session["mensagemIndex"] != null)
            {
                if (Convert.ToInt32(Session["mensagemIndex"]) <= grid.Rows.Count - 1)
                    grid.Rows[Convert.ToInt32(Session["mensagemIndex"])].Attributes.Clear();
            }
            Session["mensagemIndex"] = grid.SelectedIndex;
            grid.Rows[grid.SelectedIndex].Attributes.CssStyle.Add("background-color", "#B7CEFF");


            List<Entidade.Mensagem> listaResourceKey = new List<Entidade.Mensagem>();
            Negocio.Mensagem mensagem = new Negocio.Mensagem();
            Sinacor.Tools.Entidade.Mensagem entidade = new Sinacor.Tools.Entidade.Mensagem();

            entidade.Traducao = new Entidade.TraducaoMensagem();
            entidade.Traducao.Idioma = new Entidade.Idioma();

            entidade.Traducao.Idioma.Id = codigoIdioma;
                        
            entidade.Traducao.IdMensagem  = Convert.ToInt32(grid.Rows[grid.SelectedIndex].Cells[1].Text);

            Session["mensagemId"] = entidade.Traducao.IdMensagem.Value; 

            listaResourceKey = mensagem.consultarResourceKey(entidade);

            ViewState["ConsultaResourceKey"] = listaResourceKey;

            grdResourceKey.DataSource = listaResourceKey;
            grdResourceKey.DataBind();

            if (listaResourceKey.Count == 0)
            {
                CarregarCabecalhoResourcekey();
                
                AvisoMensagem("A Mensagem não possui ResourceKey associada.",System.Drawing.ColorTranslator.FromHtml("#3366FF"));
            }
            acaoBotoesResourceKey(true);
        }

        protected void grdResourceKey_SelectedIndexChanged(object sender, EventArgs e)
        {
            LimparMensagemPesquisa();
            AvisoMensagem("");
            AvisoResourceKey("");

            GridView grid = (GridView)sender;

            if (Session["ResourceKeyIndex"] != null)
            {
                if (Convert.ToInt32(Session["ResourceKeyIndex"]) <= grid.Rows.Count - 1)
                    grid.Rows[Convert.ToInt32(Session["ResourceKeyIndex"])].Attributes.Clear();
            }

            Session["ResourceKeyIndex"] = grid.SelectedIndex;
            grid.Rows[grid.SelectedIndex].Attributes.CssStyle.Add("background-color", "#B7CEFF");


            List<Sinacor.Tools.Entidade.Mensagem> listaMensagem = new List<Sinacor.Tools.Entidade.Mensagem>();
            Negocio.Mensagem mensagem = new Negocio.Mensagem();
            
            Entidade.Mensagem entidade = new Entidade.Mensagem();
            entidade.Traducao = new Entidade.TraducaoMensagem();
            entidade.Traducao.Idioma = new Entidade.Idioma();

            entidade.Traducao.Idioma.Id = codigoIdioma;
            entidade.Id = Convert.ToInt32(grid.Rows[grid.SelectedIndex].Cells[1].Text);

            listaMensagem = mensagem.consultarMensagem(entidade);

            grdMensagem.DataSource = listaMensagem;
            grdMensagem.DataBind();
        }

        protected void grdResouceKey_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                //paginar(sender, e);
                ((GridView)sender).PageIndex = e.NewPageIndex;
                this.preencherGridResourceKey(Entidade.Mensagem.PropriedadeSort, true);               
            }
            catch (Exception ex)
            {
                this.apresentarMensagem(ex.Message);
            }

        }

        protected void grdResouceKey_Sorting(object sender, GridViewSortEventArgs e)
        {
            try
            {
                this.preencherGridResourceKey(e.SortExpression);
            }
            catch (Exception ex)
            {
                this.apresentarMensagem(ex.Message);
            }
        }


        protected new void setDefaultGridStyle(GridViewRowEventArgs e, string defaultStyle)
        {
            e.Row.CssClass = defaultStyle.ToUpper();
            e.Row.Attributes.Add("onmouseover", "this.className = 'HOVER'; ");
            e.Row.Attributes.Add("onmouseout", "this.className = '" + defaultStyle.ToUpper() + "'; ");

            //Seleciona
            setGridStyleColumn(e,0);
            
            //Alterar
            setGridStyleColumn(e, 4);
            
            //Deletar
            setGridStyleColumn(e, 5);
          
            //e.Row.Attributes.Add("onclick", "javascript:setUpdateItem(this);");
            //e.Row.Attributes.Add("ondblclick", "javascript:doisCliques(this);");
        }

        private void setGridStyleColumn(GridViewRowEventArgs grid,int indice)
        {
            if (grid.Row.RowIndex > -1)
            {
                if (grid.Row.Cells[indice].Attributes.Count == 0)
                {
                    grid.Row.Cells[indice].Attributes.Add("onmouseover", "this.style.cursor='hand';");
                    grid.Row.Cells[indice].Attributes.Add("onmouseout", "this.style.cursor='';");
                }
            }
        }

        private void CarregarCabecalhoMensagem()
        {
            List<Sinacor.Tools.Entidade.Mensagem> listaMensagem = new List<Sinacor.Tools.Entidade.Mensagem>();
            Sinacor.Tools.Entidade.Mensagem mensagem = new Sinacor.Tools.Entidade.Mensagem();

            mensagem.Traducao = new Sinacor.Tools.Entidade.TraducaoMensagem();
            listaMensagem.Add(new Sinacor.Tools.Entidade.Mensagem());

            grdMensagem.DataSource = listaMensagem;
            grdMensagem.DataBind();
            grdMensagem.Rows[0].Visible = false;

            acaoBotoesMensagem(false);            
        }

        private void AvisoPesquisa(string texto)
        {
            lblAvisoPesquisa.Text = texto;  
        }
        private void AvisoMensagem(string texto,System.Drawing.Color cor)
        {
            lblAvisoMensagem.Text = texto;
            lblAvisoMensagem.ForeColor = cor;
        }
        private void AvisoMensagem(string texto)
        {
            lblAvisoMensagem.Text = texto;         
        }

        private void AvisoResourceKey(string texto, System.Drawing.Color cor)
        {
            lblAvisoResourceKey.Text = texto;
            lblAvisoResourceKey.ForeColor = cor;
        }
        private void AvisoResourceKey(string texto)
        {
            lblAvisoResourceKey.Text = texto;
        }
        
        private void LimparMensagemPesquisa()
        {
            lblAvisoPesquisa.Text = string.Empty;            
        }

        private void CarregarCabecalhoResourcekey()
        {
            List<Sinacor.Tools.Entidade.Mensagem> listaMensagem = new List<Sinacor.Tools.Entidade.Mensagem>();
            Sinacor.Tools.Entidade.Mensagem mensagem = new Sinacor.Tools.Entidade.Mensagem();

            mensagem.Traducao = new Sinacor.Tools.Entidade.TraducaoMensagem();
            listaMensagem.Add(new Sinacor.Tools.Entidade.Mensagem());

            grdResourceKey.DataSource = listaMensagem;
            grdResourceKey.DataBind();
            grdResourceKey.Rows[0].Visible = false;

            lblAvisoMensagem.Text = "";

            acaoBotoesResourceKey(false);
        }


        private void acaoBotoesMensagem(bool parametro)
        {
            btnNovaMensagemResourceKey.Enabled = parametro;
        }

        private void acaoBotoesResourceKey(bool parametro)
        {
            btnNovaResourceKey.Enabled = parametro;
        }
                
        protected void rdoFiltro_CheckedChanged(object sender, EventArgs e)
        {
            AvisoMensagem("");
            AvisoResourceKey("");

            LimparMensagemPesquisa();
            txtMensagem.Text = string.Empty;

            CarregarCabecalhoMensagem();
            acaoBotoesMensagem(false);

            CarregarCabecalhoResourcekey();
            
            ViewState["ConsultaMensagem"] = null;
            ViewState["ConsultaResourceKey"] = null;
        }

        //protected void btnNovaResourceKey_Click(object sender, EventArgs e)
        //{
        //    entidade = new Entidade.Mensagem();

        //    entidade.ResourceKey = txtMensagem.Text.Trim();

        //    entidade.Traducao.Idioma = new Entidade.Idioma();
        //    entidade.Traducao.Idioma.Id = codigoIdioma;

        //    entidade.TipoFiltroMensagem = Sinacor.Tools.Entidade.Enum.TipoFiltroMensagem.ResouceKey;

        //    Session["Mensagem"] = entidade;

        //    this.Page.Server.Transfer("frmMensagem.aspx");
        //}

        protected void txtMensagem_TextChanged(object sender, EventArgs e)
        {
             LimparMensagemPesquisa();

            CarregarCabecalhoMensagem();
            acaoBotoesMensagem(false);

            CarregarCabecalhoResourcekey();
            
            ViewState["ConsultaMensagem"] = null;
            ViewState["ConsultaResourceKey"] = null;
        }

        #endregion
        
    }
}
